package week2;

import java.util.HashMap;
import java.util.Map;

/**
 *
 * 242. 有效的字母异位词
 * https://leetcode-cn.com/problems/valid-anagram/
 *
 * 执行结果：  通过  显示详情
 *
 * 添加备注
 * 执行用时：15 ms, 在所有 Java 提交中击败了23.92% 的用户
 * 内存消耗：39.3 MB, 在所有 Java 提交中击败了11.06% 的用户
 *
 */
public class Week2ValidAnagram {

    public boolean isAnagram(String s, String t) {
        if(s.length() != t.length()) {
            return false;
        }

        Map<Character, Integer> charNumMap = new HashMap<Character, Integer>();
        for(int size = 0; size < s.length(); size++) {
            char c1 = s.charAt(size);
            charNumMap.put(c1, charNumMap.getOrDefault(c1, 0) + 1);
        }
        for(int size = 0; size < t.length(); size++) {
            char c2 = t.charAt(size);
            charNumMap.put(c2, charNumMap.getOrDefault(c2, 0) - 1);
            if(charNumMap.get(c2) < 0) {
                return false;
            }
        }

        return true;
    }
}
